/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2023-12-25
 * Time: 22:20
 */
//思路：动态规划
//建立dp表，在遍历原数组的过程中，
//去他的前面去找比它小的值中所对应的最大的dp值+1作为他的dp值，
//如果它的前面没有比他小的数，那就让她的dp值为1(或者说是dp值++)
import java.util.*;


// 7-15 最长有序子序列


public class Main14 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        for(int i=0;i<t;i++){
            int n=sc.nextInt();
            int[]array=new int[n];
            for(int j=0;j<n;j++){
                array[j]=sc.nextInt();
            }

            int ret=func(array);
            System.out.println(ret);
            //每两组测试的输出之间留一个空行。
            if(i<t-1){
                System.out.println();
            }

        }
    }


    public static int func (int[] array) {
        int len = array.length;
        int[] dp = new int[len];
        dp[0] = 1;
        for (int i = 1; i < len; i++) {
            for (int j = 0; j < i; j++) {
                int arri = array[i];
                int arrj = array[j];
                if (arri > arrj) {
                    if (dp[j] > dp[i]) {
                        dp[i] = dp[j];
                    }
                }
            }
            dp[i]++;
        }


        int maxvalue = 0;
        for (int i = 0; i < len; i++) {
            if (maxvalue < dp[i]) {
                maxvalue = dp[i];
            }
        }
        return maxvalue;
    }
}

